EN FR
EN FR


Section: New Results

Finer control on AD transformation

Participants : Valérie Pascual, Laurent Hascoët.

We explore methods to provide the AD end-user with a better control on the AD transformation. We want to organize a progressive AD process in which the end-user can choose among a set of available AD code optimizations. In a first stage, the end-user may deactivate most of these optimizations, thus obtaining a differentiated code that is easier to understand and hopefully more robust. If problems do occur, this differentiated code is easier to debug with the debugging tools that we provide. In the next stages, the end-user may progressively turn the optimizations on, and at the same time check that the derivatives remain correct.

Another goal closely related is the comparison and evaluation of the existing corpus of AD code optimizations. tapenade is one of the AD tools that incorporate most of AD optimizations proposed in litterature. If a few missing optimizations are included, tapenade with its relatively large set of validation applications can be the common ground for a credible evaluation of the benefit brought by each optimization.

In this direction, we have extended tapenade to turn some classical optimizations that were automatically applied into optional optimizations. The emblematic example is activity analysis. This required some code cleanup. Also, we are extending tapenade to give the option of “association by address” instead of “association by name”. This means bundling each variable with its derivative into a structured object, instead of creating new variables with new names to hold the derivatives. Which option is better is a difficult question, related to memory locality issues. This extension will allow us to make accurate measurements on our set of validation codes. This is also a step towards a better collaboration of tapenade with overloading-based AD tools, that natively use association by address.